Methods, systems, and computer readable media for routing inter-public land mobile network (inter-PLMN) messages related to existing subscriptions with network function (NF) repository function (NRF) using security edge protection proxy (SEPP)

ABSTRACT

A method for routing inter-public land mobile network (inter-PLMN) messages relating to existing subscriptions with a network function (NF) repository functions (NRFs) includes, at a security edge protection proxy (SEPP) implemented using at least one processor, automatically populating, by the SEPP, a subscription identifier to target NRF resource identification information mapping database accessible to the SEPP with mappings between subscription identifiers and target NRF resource identification information. The method further includes receiving an inter-PLMN message for modifying or deleting a subscription. The method further includes reading a subscription identifier from the message for modifying or deleting the subscription. The method further includes using the subscription identifier from the message for modifying or deleting the subscription to access the database and obtain an identifier associated with an NRF that created the subscription. The method further includes forwarding the message for updating or deleting the subscription to the NRF.

TECHNICAL FIELD

The subject matter described herein relates to routing inter-PLMN messages relating to existing subscriptions. More particularly, the subject matter described herein relates to using an SEPP to route inter-PLMN messages relating to existing subscriptions with an NRF.

BACKGROUND

In 5G telecommunications networks, a network function that provides service is referred to as a producer NF or NF service producer. A network function that consumes services is referred to as a consumer NF or NF service consumer. A network function can be a producer NF, a consumer NF, or both, depending on whether the network function is consuming, producing, or consuming and producing services. The terms “producer NF” and “NF service producer” are used interchangeably herein. Similarly, the terms “consumer NF” and “NF service consumer” are used interchangeably herein.

A given producer NF may have many service endpoints, where a service endpoint is the point of contact for one or more NF instances hosted by the producer NF. The service endpoint is identified by a combination of Internet protocol (IP) address and port number or a fully qualified domain name that resolves to an IP address and port number on a network node that hosts a producer NF. An NF instance is an instance of a producer NF that provides a service. A given producer NF may include more than one NF instance. It should also be noted that multiple NF instances can share the same service endpoint.

Producer NFs register with a network function repository function (NRF). The NRF maintains service profiles of available NF instances identifying the services supported by each NF instance. The terms “service profiles” and “NF profiles” are used interchangeably herein. Consumer NFs can obtain information about producer NF instances that have registered with the NRF through the NF service discovery procedure. According to the NF service discovery procedure, a consumer NF sends an NF discovery request to the NRF. The NF discovery request includes query parameters that the NRF uses to locate NF profiles of producer NFs capable of providing the service identified by the query parameters. NF profiles are data structures that define the type of service provided by a producer NF instance and well as contact and capacity information regarding the producer NF instance.

In addition to consumer NFs, another type of network node that can invoke the NF service discovery procedure to obtain information about NF service instances is a service communication proxy (SCP). The case where the SCP uses the NF service discovery procedure to obtain information about producer NF instances on behalf of consumer NFs is referred to as delegated discovery. Consumer NFs connect to the SCP, and the SCP load balances traffic among producer NF service instances that provide the required services or directly routes the traffic to the destination producer NF instances. The communications model where consumer NFs communicate with producer NFs via the SCP is referred to as the indirect communications model.

In addition to the SCP, another example of an intermediate proxy that forwards traffic between producer and consumer NFs is the security edge protection proxy (SEPP). The SEPP is the network function used to protect control plane traffic that is exchanged between different 5G public land mobile networks (PLMNs). As such, the SEPP performs message filtering, policing and topology hiding for all application programming interface (API) messages that are transmitted between PLMNs.

One problem that can occur in 5G networks is that routing information may be lost for inter-PLMN messages relating to existing subscriptions with an NRF when NRFs are deployed in different regions of a PLMN and intermediate forwarding is implemented. For example, when an inter-PLMN message for creating a new subscription arrives at an NRF in a PLMN, if the NRF cannot create the requested subscription, the NRF implements intermediate forwarding and forwards the message to another NRF in a different region of the PLMN. If the target NRF is able to create the subscription, it does so and sends a subscription response message back to the consumer NF in the originating PLMN. The subscription response includes a location header that identifies the target NRF. However, the location header is removed by the NRF in the originating PLMN before forwarding the subscription response to the consumer NF. Accordingly, when the consumer NF sends a message relating to the subscription, the message does not include information that identifies the target NRF in the destination PLMN. Instead, the NRF in the originating PLMN self-constructs an inter-PLMN NRF FQDN that is used in all inter-PLMN subscription requests and does not identify the target NRF. Accordingly, when the originating PLMN forwards the message relating to the subscription to the destination PLMN, there is insufficient information in the message to route the message to the NRF on which the subscription was created.

Accordingly, there exists a need for improved methods, systems and computer readable media for routing inter-PLMN messages relating to existing subscriptions with NRFs in a network that implements intermediate forwarding.

SUMMARY

A method for routing inter-public land mobile network (inter-PLMN) messages relating to existing subscriptions with a network function (NF) repository functions (NRFs), includes, at a security edge protection proxy (SEPP) implemented using at least one processor, automatically populating, by the SEPP, a subscription identifier to target NRF resource identification information mapping database accessible to the SEPP with mappings between subscription identifiers and target NRF resource identification information. The method further includes receiving an inter-PLMN message for modifying or deleting a subscription. The method further includes reading a subscription identifier from the message for modifying or deleting the subscription. The method further includes using the subscription identifier from the message for modifying or deleting the subscription to access the database and obtain an identifier associated with an NRF that created the subscription. The method further includes forwarding the message for updating or deleting the subscription to the NRF.

According to another aspect of the subject matter described herein, automatically populating the subscription identifier to target NRF resource identification information mapping database includes receiving, from the NRF, a subscription creation response message indicating successful creation of the subscription, and reading, from the subscription creation response message, the subscription identifier and the identifier associated with the NRF and storing, in the database, a mapping between the subscription identifier and the identifier associated with the NRF.

According to another aspect of the subject matter described herein, the identifier associated with the NRF comprises a target apiRoot attribute identifying the NRF.

According to another aspect of the subject matter described herein, reading, from the subscription creation response message, the subscription identifier and the identifier associated with an NRF includes reading the target apiRoot attribute from a location header of the subscription creation response message.

According to another aspect of the subject matter described herein, receiving the subscription creation response message includes receiving a 201 Created message indicating successful creation of the subscription.

According to another aspect of the subject matter described herein, receiving the subscription creation response message includes receiving the subscription creation response message from an NRF that is a different NRF to which the SEPP sent a corresponding subscription creation request message.

According to another aspect of the subject matter described herein, receiving the subscription creation response message from the NRF that is different from the NRF to which the SEPP sent the corresponding subscription creation request message includes receiving the subscription creation response message from an NRF that received the corresponding subscription creation request message via intermediate forwarding.

According to another aspect of the subject matter described herein, receiving the inter-PLMN message for updating or deleting the subscription includes receiving a hypertext transfer protocol (HTTP) PATCH request for updating or deleting the subscription.

According to another aspect of the subject matter described herein, the method for routing inter-PLMN subscriptions to an NRF includes identifying the inter-PLMN message for updating or deleting the subscription as a message for updating or deleting the subscription based on an HTTP method type of the message for updating or deleting the subscription.

According to another aspect of the subject matter described herein, the message for updating or deleting the subscription includes receiving a message including an inter-PLMN NRF fully qualified domain name (FQDN) constructed by a visited NRF and wherein forwarding the message incudes forwarding the message using the identifier for the NRF obtained from the database rather than the inter-PLMN NRF FQDN constructed by the visited NRF.

According to another aspect of the subject matter described herein, a system for routing inter-public land mobile network (inter-PLMN) messages relating to existing subscriptions with a network function (NF) repository functions (NRFs) is provided. The system includes a security edge protection proxy (SEPP) including at least one processor and a memory. The system further includes an inter-PLMN subscription message hander implemented by the at least one processor for automatically populating a subscription identifier to target NRF resource identification information mapping database accessible to the SEPP with mappings between subscription identifiers and target NRF resource identification information and storing the database in the memory, receiving an inter-PLMN message for modifying or deleting a subscription, reading a subscription identifier from the message for modifying or deleting the subscription, using the subscription identifier from the message for modifying or deleting the subscription to access the database and obtain an identifier associated with an NRF that created the subscription, and forwarding the message for updating or deleting the subscription to the NRF.

According to another aspect of the subject matter described herein, the inter-PLMN subscription message handler is configured to, in automatically populating the subscription identifier to target NRF resource identification information mapping database: receive, from the NRF, a subscription creation response message indicating successful creation of the subscription; and read, from the subscription creation response message, the subscription identifier and the identifier associated with the NRF and storing, in the database, a mapping between the subscription identifier and the identifier associated with the NRF.

According to another aspect of the subject matter described herein, the identifier associated with the NRF comprises a target apiRoot attribute identifying the NRF.

According to another aspect of the subject matter described herein, the inter-PLMN subscription message handler is configured to read the target apiRoot attribute from a location header of the subscription response message.

According to another aspect of the subject matter described herein, the subscription creation response message includes a 201 Created message indicating successful creation of the subscription.

According to another aspect of the subject matter described herein, the subscription creation response message is received from an NRF that is a different NRF to which the SEPP sent a corresponding subscription creation request message.

According to another aspect of the subject matter described herein, the subscription creation response message is received from an NRF that received the corresponding subscription creation request message via intermediate forwarding.

According to another aspect of the subject matter described herein, the inter-PLMN message for updating or deleting the subscription includes a hypertext transfer protocol (HTTP) PATCH request for updating or deleting the subscription.

According to another aspect of the subject matter described herein, the inter-PLMN message handler is configured to identify the inter-PLMN message for updating or deleting the subscription as a message for updating or deleting the subscription based on an HTTP method type of the message for updating or deleting the subscription.

According to another aspect of the subject matter described herein, a non-transitory computer readable medium having stored thereon executable instructions that when executed by a processor of a computer control the computer to perform steps. The steps are performed at a security edge protection proxy (SEPP). The steps include automatically populating, by the SEPP, a subscription identifier to target network function (NF) repository function (NRF) resource identification information mapping database accessible to the SEPP with mappings between subscription identifiers and target NRF resource identification information. The steps further include receiving an inter-PLMN message for modifying or deleting a subscription. The steps further include reading a subscription identifier from the message for modifying or deleting the subscription. The steps further include using the subscription identifier from the message for modifying or deleting the subscription to access the database and obtain an identifier associated with an NRF that created the subscription. The steps further include forwarding the message for updating or deleting the subscription to the NRF.

The subject matter described herein can be implemented in software in combination with hardware and/or firmware. For example, the subject matter described herein can be implemented in software executed by a processor. In one exemplary implementation, the subject matter described herein can be implemented using a non-transitory computer readable medium having stored thereon computer executable instructions that when executed by the processor of a computer control the computer to perform steps. Exemplary computer readable media suitable for implementing the subject matter described herein include non-transitory computer-readable media, such as disk memory devices, chip memory devices, programmable logic devices, and application specific integrated circuits. In addition, a computer readable medium that implements the subject matter described herein may be located on a single device or computing platform or may be distributed across multiple devices or computing platforms.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary implementations of the subject matter described herein will now be explained with reference to the accompanying drawings, of which:

FIG. 1 is a network diagram illustrating an exemplary 5G system network architecture;

FIG. 2 is a network diagram illustrating an exemplary geo-redundant NRF deployment;

FIG. 3 is a network diagram illustrating inter-PLMN subscription creation;

FIG. 4 is a network diagram illustrating inter-PLMN subscription creation with intermediate NRF forwarding;

FIG. 5 is a message flow diagram illustrating exemplary messages exchanged for creating a subscription to an NF instance in a different PLMN;

FIG. 6 is a message flow diagram illustrating exemplary messages exchanged for updating a subscription to an NF instance in a different PLMN;

FIG. 7 is a network diagram illustrating a problem with routing inter-PLMN messages associated with existing subscriptions;

FIG. 8 is a message flow diagram further illustrating the problem with routing inter-PLMN messages associated with existing subscriptions;

FIG. 9 is a network diagram illustrating an SEPP that stores mapping information for mapping subscription identification information to target NRF resource identifiers and using the mapping information to route inter-PLMN messages associated with existing subscriptions;

FIG. 10 is a message flow diagram illustrating exemplary messages exchanged for using mapping information stored by an SEPP to route inter-PLMN messages associated with existing subscriptions;

FIG. 11 is a block diagram illustrating an SEPP for creating mappings between subscription identification information and target NRF resource identification information and using the mappings to route inter-PLMN messages associated with existing subscriptions; and

FIG. 12 is a flow chart illustrating an exemplary process performed by an SEPP for creating mappings between subscription identification information and target NRF resource identification information and using the mappings to route inter-PLMN messages associated with existing subscriptions.

DETAILED DESCRIPTION

FIG. 1 is a block diagram illustrating an exemplary 5G system network architecture. The architecture in FIG. 1 includes NRF 100 and SCP 101, which may be located in the same home public land mobile network (HPLMN). As described above, NRF 100 may maintain profiles of available producer NF service instances and their supported services and allow consumer NFs or SCPs to subscribe to and be notified of the registration of new/updated producer NF service instances. SCP 101 may also support service discovery and selection of producer NF instances. SCP 101 may perform load balancing of connections between consumer and producer NFs.

NRF 100 is a repository for NF or service profiles of producer NF instances. In order to communicate with a producer NF instance, a consumer NF or an SCP must obtain the NF or service profile of the producer NF instance from NRF 100. The NF or service profile is a JavaScript object notation (JSON) data structure defined in 3GPP TS 29.510. The NF or service profile includes attributes that indicate the type of service provided, capacity of the NF instance, and information for contacting the NF instance.

In FIG. 1 , any of the network functions can be consumer NFs, producer NFs, or both, depending on whether they are requesting, providing, or requesting and providing services. In the illustrated example, the NFs include a policy control function (PCF) 102 that performs policy related operations in a network, a unified data management (UDM) 104 that manages user data, and an application function (AF) 106 that provides application services.

The NFs illustrated in FIG. 1 further include a session management function (SMF) 108 that manages sessions between access and mobility management function (AMF) 110 and PCF 102. AMF 110 performs mobility management operations similar to those performed by a mobility management entity (MME) in 4G networks. An authentication server function (AUSF) 112 performs authentication services for user equipment (UEs), such as user equipment (UE) 114, seeking access to the network.

A network slice selection function (NSSF) 116 provides network slicing services for devices seeking to access specific network capabilities and characteristics associated with a network slice. A network exposure function (NEF) 118 provides application programming interfaces (APIs) for application functions seeking to obtain information about Internet of things (IoT) devices and other UEs attached to the network. NEF 118 performs similar functions to the service capability exposure function (SCEF) in 4G networks.

A radio access network (RAN) 120 connects user equipment (UE) 114 to the network via a wireless link. Radio access network 120 may be accessed using a g-Node B (gNB) (not shown in FIG. 1 ) or other wireless access point. A user plane function (UPF) 122 can support various proxy functionality for user plane services. One example of such proxy functionality is multipath transmission control protocol (MPTCP) proxy functionality. UPF 122 may also support performance measurement functionality, which may be used by UE 114 to obtain network performance measurements. Also illustrated in FIG. 1 is a data network (DN) 124 through which UEs access data network services, such as Internet services.

SEPP 126 filters incoming traffic from another PLMN and performs topology hiding for traffic exiting the home PLMN. SEPP 126 may communicate with a SEPP in a foreign PLMN which manages security for the foreign PLMN. Thus, traffic between NFs in different PLMNs may traverse two SEPP functions, one for the home PLMN and the other for the foreign PLMN.

As stated above, one problem that can occur in 5G and other networks is in some network deployments, a PLMN is divided into multiple regions, each with an NRF, and routing information for inter-PLMN messages relating to existing subscriptions is not available. In some network deployments, each region in a PLMN has one logical NRF deployed. The logical NRF deployed in each region may include multiple physical geo-redundant NRFs deployed for high availability. Inter-PLMN Nnrf service requests may be triggered from a visited NRF to a home NRF. The SEPP is used to provide inter-PLMN forwarding functionality between PLMNs. As per 3GPP specifications (3GPP TS 23.003), the NRF from the visited PLMN shall use a self-constructed FQDN of the home NRF, which is in the inter-PLMN format, to route the inter-PLMN Nnrf service request. Hence, as per 3GPP specifications, for one PLMN there can be only one inter-PLMN NRF apiRoot, which the SEPP and other PLMN NRF use for routing the inter-PLMN Nnrf service requests. If the initial subscription request is forwarded to a home NRF which cannot serve the request, then intermediate forwarding functionality (3GPP TS 29.510, Section 5.2.2.5.4) is used to route the request to the target home NRF.

When the target NRF in the home network accepts and processes the subscription request, the target home NRF formulates and sends a success response message to the NRF in the visited network. The success response includes a location header that identifies the target NRF as the NRF that created the subscription. The success response message also includes a subscription identifier that identifies the subscription. However, in processing the success response message, the location header that identifies the target NRF is modified to identify the serving NRF (visited NRF) and the subscriptionID prefixed with a mobile country code and mobile network code (MCC and MNC) (3GPP TS 29.510 Section 5.2.2.5.7). The MCC and MCC prefix plus subscriptionID is required for subsequent request inter-PLMN routing from the visited NRF. In this course of handling, the target NRF's apiRoot information is lost due to the modification of the location header by the visited NRF. Hence, for subsequent messages relating to existing subscriptions, there is no mechanism to route the request to the target home NRF where the resource was created. According to an aspect of the subject matter described herein, it is proposed that the home SEPP (hSEPP) in the home PLMN, shall create a mapping of the subscriptionID to the target NRF's apiRoot during initial subscription creation (response handling). On any subsequent request handling relating to the subscription, the hSEPP derives the target NRF's apiRoot through the locally maintained mapping and routes the Nnrf service request to the target NRF.

FIG. 2 is a network diagram illustrating an example of a geo-redundant NRF deployment. in FIG. 2 , a visited PLMN includes one region, region B with visited NRF (vNRF) 100A and consumer NF 200. A visited SEPP 126A forwards traffic from the visited PLMN to the home PLMN and vice versa. The home PLMN includes two regions, region C and region D. Each region includes multiple NRFs that share data with other NRFs in the same region. In the illustrated example, region C includes NRFs 1008. Region D includes NRFs 100C. Region D also includes producer NF 202. An SEPP 126B forwards traffic from the visited PLMN to the home PLMN and vice versa. It should be noted that NRFs in different regions do not share data with each other. For example, NRFs 100B in region C do not share data with NRFs 100C located in region D. If a given NRF is not able to handle an Nnrf service request, the NRF in the region shall forward the service request to another NRF in the same PLMN but in a different region using the 3G PP-defined intermediate forwarding procedure.

FIG. 3 is a network diagram illustrating inter-PLMN subscription creation.

For any inter-PLMN subscription request, consumer NF 200 sends the subscription request to locally configured visited NRF (vNRF) 100A, with the required conditional attributes in the request. vNRF 100A constructs a 3gpp-Sbi-Target-apiRoot header with a self-constructed fully qualified domain name (FQDN) in the inter-PLMN format and forwards the request to vSEPP 126A. vSEPP 126A forwards the request to hSEPP 126B. hSEPP 126B forwards the subscription creation request to hNRF 100B. hNRF 100B may be the default NRF configured to receive inter-PLMN subscription requests for Nnrf services. However, as will be described in detail below, if hNRF 100B is unable to process an inter-PLMN subscription request, hNRF 100B may forward the subscription creation request to another NRF in a different region using intermediate forwarding.

FIG. 4 is a diagram illustrating intermediate forwarding of an inter-PLMN subscription creation request. Referring to FIG. 4 , after the request reaches hSEPP 126B, the routing of the inter-PLMN Nnrf service request is based on local configuration. In the illustrated example, as in FIG. 3 , hSEPP 126B may forward the inter-PLMN subscription creation request to hNRF 100B. If the hNRF 100B is unable to process the subscription creation request (e.g., because the producer NF whose information is being subscribed to is registered with an NRF in a different region from hNRF 100B), then hNRF 100B performs intermediate forwarding of the subscription creation request to NRF 100C of region D, as defined in 3GPP TS 29.510, Section 5.2.2.5.4. More than one hop of intermediate forwarding may be performed until the subscription creation request is received by the NRF with which the producer NF whose information is being sought is registered.

FIG. 5 is a message flow diagram illustrating exemplary messages exchanged as per 3GPP TS 29.510, section 5.2.2.5.3 for creating a subscription to an NF instance in a different PLMN. Referring to FIG. 5 , in line 1 of the message flow, NRF 100A in the serving PLMN sends an HTTP POST (subscription creation) request to the resource uniform resource identifier (URI) in NRF 100B in the home PLMN representing the “subscriptions” collection resource. In line 2 of the message flow diagram, NRF 100B sends a response to the subscription creation request to NRF 100A. On success, NRF 100B returns a 201 Created response including a subscription identifier for identifying the subscription. The NRF in Serving PLMN (vNRF 100A) should not keep state for this created subscription and sends to the NF service consumer in the serving PLMN a subscriptionID that consists of the following structure: <MCC>+<MNC>+“−”+<OriginalSubscriptionID>. The URI in the location header that the NRF in serving PLMN returns to the NF service consumer in the serving PLMN contains a <subscriptionId> modified as described above and, if it is as an absolute URI, an apiRoot pointing to the address of the NRF in serving PLMN. Thus, in FIG. 5 , the apiRoot in the subscription response returned to the NF service consumer will be that of NRF 100A rather than NRF 100B. One point to highlight is that the location header with the target NRF apiRoot (home PLMN) is lost, which makes routing of subsequent messages relating to the existing subscription a challenge.

FIG. 6 is a message flow diagram illustrating exemplary messages exchanged for an update to a subscription in a different PLMN. Referring to FIG. 6 , in line 1, NRF 100A located in the serving network (vPLMN) sends an HTTP PATCH request identifying an existing subscription to NRF 100B located in the home PLMN. 3GPP TS 29.510, Section 5.2.2.5.7, states that the update of a subscription in a different PLMN is performed by updating a subscription resource identified by a “subscription ID”. The request for updating a subscription includes the identity of the PLMN of the home NRF (MCC/MNC values) as a leading prefix of the subscriptionID, which was inserted in the 201 Created message sent in response to the subscription creation request. One point to highlight is that as per section 28.3.2.3.2 of 3GPP TS 23.003, the NRF in the visited PLMN self-constructs the NRF FQDN of target NRF in the home PLMN, and the self-constructed FQDN will be the same for a given home PLMN, even when there are multiple PLMN-level NRFs deployed in the home PLMN. For example, according to Section 28.3.2.3.2 and 28.3.2.3.3 of 3GPP TS 23.003, the API root for NRF services self-constructed by the vNRF shall be:

https://nrf.5gc.nid<NID>.mnc<MNC>.mcc<MCC>0.3gppnetwork.org There is no means for the NRF in the visited PLMN to identify the specific target NRF in the home network on which a subscription resides. The self-constructed is the same for any inter-PLMN service request for creating or updating a subscription for an Nnrf service, even when there are multiple NRFs in the home network. The SEPP in the home network may forward such inter-PLMN Nnrf service requests to an NRF by default, but that NRF may not be the NRF that created the subscription. Thus, if the home NRF is unable to process or forward the subscription update request, the NRF may return a 4xx or 5xx error message to the NRF in the serving PLMN.

FIG. 7 is a network diagram illustrating the problem with routing inter-PLMN messages relating to existing subscriptions. Referring to FIG. 7 , NF consumer 200 located in the visited or serving PLMN is assumed to have created a subscription with NRF 100C located in the home PLMN. When NF consumer 200 sends a message to update the subscription, NF consumer 200 sends the message to visited NRF 100A. Visited NRF 100A self-constructs the FQDN of the home NRF using the format described above. Visited NRF 100A forwards the message to the home PLMN based on the MCC+MNC value in the self-constructed FQDN. Based on the 3gpp-sbi-target-apiRoot header, which contains the above-described self-constructed FQDN, vSEPP 126A forwards the request to hSEPP 126B. hSEPP 126B has no mechanism to route the request to NRF 100C in region D which was responsible for creating the subscription resource. Instead, hSEPP 126B may route the request to NRF 100B by default, which will result in an error response because the subscription does not reside on NRF 1008.

FIG. 8 is a message flow illustrating exemplary routing of inter-PLMN messages relating to an existing subscription with an NRF where intermediate forwarding is implemented. Referring to FIG. 8 , in line 1, consumer NF 200 in the visited PLMN creates an inter-PLMN subscription with hNRF 100C located in the home PLMN. hNRF 100C receives the initial subscription creation request from hNRF 100B via intermediate forwarding. hNRF 100C sends a success response to consumer NF 200, but vNRF 100A modifies the location header in the success response to replace the target apiRoot identifying hNRF 100C with the target apiRoot identifying vNRF 100A.

In line 2, consumer NF 200 sends a message for updating or deleting the existing subscription to vNRF 100A. vNRF 100A identifies the message as requiring service by an NRF in a different PLMN and self-constructs the inter-PLMN NRF FQDN using the format described above. The inter-PLMN NRF FQDN does not include an identifier for hNRF 100C. In line 3, vNRF 100A forwards the message to vSEPP 126A. In line 4, vSEPP 126A forwards the message to hSEPP 1268. hSEPP 1268 does not have the information to route the message to target NRF 100C in region 3. Accordingly, hSEPP 126B may forward the request to hNRF 100B by default, and hNRF 100B is unable to process the message because the subscription is located on a different NRF.

In order to avoid the difficulties described above with routing of inter-PLMN messages relating to existing subscriptions with an NRF, the hSEPP maintains a mapping between subscriptionID and target NRF apiRoot. On successful subscription creation, the target NRF generates a unique subscriptionID. In the response indicating successful creation of a subscription, the target NRF includes a location header with the resource URI containing the target NRF apiRoot that identifies the resource for the subscription created on the target NRF. The hSEPP receives the response, reads the target NRF apiRoot and the subscription ID from the response, creates a mapping between the subscriptionID and the target NRF's apiRoot, and stores the mapping in a subscription ID to target NRF resource identification information database local to the hSEPP. For any incoming subsequent subscription requests relating to existing subscriptions, the hSEPP performs a lookup in the subscriptionID to target NRF resource identification information database using the subscriptionID from the incoming subscription request, locates the target NRF's apiRoot, and routes the request to the NRF corresponding to the target NRF's apiRoot.

FIG. 9 is a network diagram illustrating the use of an SEPP to create and use mappings between subscription identifiers and target apiRoot information and the use of the mappings to route inter-PLMN messages relating to existing subscriptions with NRFs. Referring to FIG. 9 , the visited network includes NRFs 100A1 and 100A2 located in different regions, and the home network includes NRFs 100B and 100C located in different regions. It is assumed that consumer NF 200 served by vNRF 100A1 seeks to subscribe to receive updates regarding producer NF 202, which is registered with NRF 100C in region D of the home network. Accordingly, consumer NF 200 located in the visited network creates a subscription with NRF 100C located in the home network by sending a subscription creation request to vNRF 100A1. vNRF 100A1 self-constructs the inter-PLMN FQDN and forwards the subscription creation request to vSEPP 126A. vSEPP 126A forwards the subscription creation request to hSEPP 126B. hSEPP 126B forwards the subscription creation request to hNRF 100B by default. hNRF 100B forwards the subscription creation request to hNRF 100C via intermediate forwarding.

NRF 100C sends a response to the subscription creation request including a subscription identifier for identifying the subscription and an apiRoot attribute identifying NRF 100C. NRF 100C sends the response to SEPP 126B. SEPP 126B, receives the response, reads the subscription ID and the apiRoot attribute from the response, and creates an entry or record in a subscriptionID to target NRF resource identification information mapping database 900 local to SEPP 126B. When SEPP 126B receives a message from SEPP 126A for updating a subscription (identifiable by the HTTP method, such as PATCH), SEPP 126B reads the subscriptionID from the message and performs a lookup in subscriptionID to target NRF resource identification information mapping database 900 using the subscription ID from the message. SEPP 126B reads the value of the apiRoot attribute from the corresponding database record or entry and routes the message to the NRF corresponding to the apiRoot, which in FIG. 9 is NRF 100C located in region D. It should be noted that the inter-PLMN message for updating or deleting the subscription may contain the self-constructed inter-PLMN NRF FQDN created by vSEPP 100A. The message does not include the apiRoot of the target NRF 100C. However, because hSEPP 126B maintains the mapping between the subscription identifier and the target NRF apiRoot, hSEPP 126B is able to route the inter-PLMN message for updating or deleting the subscription to the target NRF that created the subscription.

FIG. 10 is a message flow diagram illustrating exemplary messages exchanged in using stored mappings between subscription identifiers and target apiRoot information to route inter-PLMN messages relating to existing subscriptions. Referring to FIG. 10 , in line 1, consumer NF 200 sends a request to create a subscription with an NRF in the home PLMN. The subscription creation request is initially forwarded to hNRF 100B. hNRF 100B determines that it is not able to create the subscription, e.g., because the producer NF whose status is being subscribed to is not registered with hNRF 100B, and hNRF 100B forwards the subscription creation request to another NRF in the home PLMN, which in this example, is hNRF 100C located in region D. hNRF 100D determines that it is able to create the requested subscription, creates the subscription and generates and transmits a success response (a 201 Created message) including a subscriptionID identifying the subscription and a location header containing the target apiRoot attribute identifying NRF 100C. hNRF 100C forwards the 201 Created message to hSEPP 126B. hSEPP 126B receives the 201 Created message, reads the subscriptionID and the target apiRoot attribute values in the message, and creates a record or entry in database 900 mapping the subscription ID to the target apiRoot attribute value. hSEPP 126B forwards the 201 Created message to vNRF1 100A, which modifies the location header to remove the target apiRoot identifying NRF 100C and adding an MCC and MNC as a prefix to the subscription ID. vNRF 100A forwards the response to consumer NF 200.

In line 2, consumer NF 200 generates and sends a message for updating the subscription with NRF 100C. The message may be a message for updating or deleting the subscription. The message includes the subscription ID prefixed with the MCC and MNC. Consumer NF 200 sends the message to vNRF 100A. vNRF 100A receives the message, identifies the message as an inter-PLMN message by the MCC and MNC prefix, and, in line 3 forwards the message to vSEPP 126A. In line 4, vSEPP 126A forwards the message to hSEPP 126B.

hSEPP 126B receives the message, and identifies, based on the HTTP method type (e.g., that the message contains an HTTP PATCH method type), that the message is a message for updating or deleting an existing subscription. hSEPP 126B reads the subscription ID from the message and performs a lookup in subscriptionID to target NRF resource identification information mapping database 900 to identify a target apiRoot identifying the NRF to which the message is directed. In this example, hSEPP 126B locates the record corresponding to the target apiRoot of hNRF 100C and, in line 5, forwards the message to hNRF 100C. hNRF 100C receives the message, processes the message to update or delete the subscription, and, in line 6, sends a success response to hSEPP 126B. In line 7, hSEPP 126B sends the success response to vSEPP 126A. In line 8, vSEPP 126A sends the success response to vNRF 100A. In line 9, vNRF 100A sends the success response message to consumer NF 200. Thus, the message flow in FIG. 9 illustrates successful routing of an inter-PLMN message for updating or deleting an existing subscription using stored mapping information at the home network SEPP.

Table 1 below illustrates exemplary mapping information that SEPP 126B may create and store in subscriptionID to target NRF resource identification mapping database.

TABLE 1 SubscriptionID to Target NRF Resource Identification Information Mappings Subscription Identifier Service Target-apiRoot SubID1 NfStatusSubscribe NRF1 apiRoot SubID2 NfStatusSubscribe NRF2 apiRoot SubID3 NfStatusSubscribe NRF3 apiRoot In Table 1, the first column includes the subscription identifier which is read from the 201 Created message for creating each subscription. The second column includes an identifier for the service type, which may also be read from the 201 Created message. The third column includes that target apiRoot, which may also be read from the 201 Created message and which identifies the target NRF. Mapping data such as that illustrated in Table 1 may be stored in memory of and/or accessible to hSEPP 126B.

FIG. 11 is a block diagram illustrating an exemplary architecture for an SEPP for creating mappings between subscription identifiers and target apiRoot information and using the mappings to route messages associated with existing subscriptions. Referring to FIG. 11 , SEPP 126B includes at least one processor 1100 and a memory 1102. SEPP 126B further includes subscriptionID to target NRF resource identification information mapping database 900 which stores mappings between subscriptionID values and target NRF resource identification information, such as apiRoot attribute values identifying target NRFs. SEPP 126B further includes an inter-PLMN subscription message handler 1104 that receives and processes inter-PLMN subscription responses to create and store mappings in database 900. Inter-PLMN subscription message handler 1104 may also process inter-PLMN requests for updating or deleting subscriptions by accessing database 900 to identify the target resource for each request and for forwarding the inter-PLMN requests to the NRF on which the subscriptions reside. Inter-PLMN subscription message handler 1104 may be implemented using computer executable instructions stored in memory 1102 and executed by processor 1100.

FIG. 12 is a flow chart illustrating an exemplary process for using an SEPP to create and store mappings between subscription identifiers and target apiRoot information and for using the mappings to route inter-PLMN messages relating to existing subscriptions. Referring to FIG. 12 , in step 1200, the process includes automatically populating, by the SEPP, a subscription identifier to target NRF resource identification information mapping database accessible to the SEPP with mappings between subscription identifiers and target NRF resource identification information. For example, SEPP 126B may receive an Nnrf status subscribe message for creating a subscription with an NRF in the PLMN of SEPP 126B. SEPP 126B may forward the inter-PLMN subscription request message to an NRF of a plurality of NRFs in the PLMN of the SEPP. For example, SEPP 126B may forward the message to NRF 100B based on NRF 100B being the default NRF configured to receive inter-PLMN subscription creation requests. To create a record in the subscription identifier to target NRF resource identification information database 900, SEPP 126B may receive a subscription response message indicating successful creation of the subscription with an NRF in the PLMN of SEPP 126B. The NRF that sends the subscription response message may be a different NRF from the NRF to which SEPP 126B forwarded the subscription creation message. For example, SEPP 126B may receive a 201 Created message from NRF 100C indicating that the subscription has been created on NRF 100C. SEPP 126B may read, from the subscription response, a subscription identifier and an identifier associated with the NRF and store a mapping between the subscription identifier and the identifier associated with the NRF that created the subscription. For example, SEPP 126B may read the subscriptionID and the apiRoot of NRF 100C from the 201 Created message and create an entry in database 900 mapping the subscriptionID to the apiRoot of NRF 100C.

In step 1202, the process includes receiving an inter-PLMN message for updating or deleting a subscription. For example, SEPP 126B may receive a message with an HTTP PATCH method type for modifying an existing subscription identified by the subscription ID in the message. The message may include the self-constructed FQDN created by vNRF 100A, which does not include the apiRoot of the target NRF that created the subscription.

In step 1204, the process includes, rather than attempting to route the message using the self-constructed inter-PLMN NRF FQDN, reading a subscription identifier from the message for modifying or deleting the subscription. For example, SEPP 126B may read the subscriptionID from the message for updating or deleting the subscription.

In step 1206, the process includes using the subscription identifier from the message for modifying or deleting the subscription to access the database and obtain the identifier associated with the NRF that created the subscription. For example, SEPP 126B may perform a lookup in database 900 using the subscription identifier from the message for updating or deleting the subscription, locate a corresponding record, and read the target apiRoot identifying NRF 100C from the record.

In step 1208 the process includes forwarding the message for updating or deleting the subscription to the NRF. For example, SEPP 126B may forward the message to the NRF identified by the target apiRoot information extracted from the database rather than using the inter-PLMN NRF FQDN constructed by vNRF 100A.

Exemplary advantages of the subject matter described herein include providing a mechanism for routing inter-PLMN messages relating to existing subscriptions. The subject matter described herein can be used to route any inter-PLMN messages associated with an existing subscription, including messages for updating a subscription or unsubscribing to or deleting a subscription. The subject matter described herein can be used to route inter-PLMN messages relating to existing subscriptions from any consumer NF type for subscriptions regarding the status of any producer NF type. Examples of such consumer and producer NF types include any of the NF types illustrated in FIG. 1 .

The disclosure of each of the following references is hereby incorporated herein by reference in its entirety.

REFERENCES

-   1. 3^(rd) Generation Partnership Project; Technical Specification     Group Core Network and Terminals; 5G System; Network Function     Repository Services; Stage 3 (Release 17) 3GPP TS 29.510 V17.1.0     (2021-03). -   2. 3^(rd) Generation Partnership Project; Technical Specification     Group Core Network and Terminals; Numbering, addressing and     identification (Release 17) 3GPP TS 23.003 V17.3.0 (2021-09).

It will be understood that various details of the subject matter described herein may be changed without departing from the scope of the subject matter described herein. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation, as the subject matter described herein is defined by the claims as set forth hereinafter. 

What is claimed is:
 1. A method for routing inter-public land mobile network (inter-PLMN) messages relating to existing subscriptions with network function (NF) repository function (NRFs), the method comprising: at a security edge protection proxy (SEPP) implemented using at least one processor: automatically populating, by the SEPP, a subscription identifier to target NRF resource identification information mapping database accessible to the SEPP with mappings between subscription identifiers and target NRF resource identification information; receiving an inter-PLMN message for modifying or deleting a subscription; reading a subscription identifier from the message for modifying or deleting the subscription; using the subscription identifier from the message for modifying or deleting the subscription to access the database and obtain an identifier associated with an NRF that created the subscription; and forwarding the message for updating or deleting the subscription to the NRF.
 2. The method of claim 1 wherein automatically populating the subscription identifier to target NRF resource identification information mapping database includes: receiving, from the NRF, a subscription creation response message indicating successful creation of the subscription; and reading, from the subscription creation response message, the subscription identifier and the identifier associated with the NRF and storing, in the database, a mapping between the subscription identifier and the identifier associated with the NRF.
 3. The method of claim 2 wherein the identifier associated with the NRF comprises a target apiRoot attribute identifying the NRF.
 4. The method of claim 3 wherein reading, from the subscription creation response message, the subscription identifier and the identifier associated with an NRF includes reading the target apiRoot attribute from a location header of the subscription creation response message.
 5. The method of claim 2 wherein receiving the subscription creation response message includes receiving a 201 Created message indicating successful creation of the subscription.
 6. The method of claim 2 wherein receiving the subscription creation response message includes receiving the subscription creation response message from an NRF that is a different NRF to which the SEPP sent a corresponding subscription creation request message.
 7. The method of claim 6 wherein receiving the subscription creation response message from the NRF that is different from the NRF to which the SEPP sent the corresponding subscription creation request message includes receiving the subscription creation response message from an NRF that received the corresponding subscription request message via intermediate forwarding.
 8. The method of claim 1 wherein receiving the inter-PLMN message for updating or deleting the subscription includes receiving a hypertext transfer protocol (HTTP) PATCH request for updating or deleting the subscription.
 9. The method of claim 8 comprising identifying the inter-PLMN message for updating or deleting the subscription as a message for updating or deleting the subscription based on an HTTP method type of the message for updating or deleting the subscription.
 10. The method of claim 1 wherein the message for updating or deleting the subscription includes receiving a message including an inter-PLMN NRF fully qualified domain name (FQDN) constructed by a visited NRF and wherein forwarding the message incudes forwarding the message using the identifier for the NRF obtained from the database rather than the inter-PLMN NRF FQDN constructed by the visited NRF.
 11. A system for routing inter-public land mobile network (inter-PLMN) messages relating to existing subscriptions with a network function (NF) repository functions (NRFs), the system comprising: a security edge protection proxy (SEPP) including at least one processor and a memory; and an inter-PLMN subscription message hander implemented by the at least one processor for automatically populating a subscription identifier to target NRF resource identification information mapping database accessible to the SEPP and including mappings between subscription identifiers and target NRF resource identification information, storing the database in the memory, receiving an inter-PLMN message for modifying or deleting a subscription, reading a subscription identifier from the message for modifying or deleting the subscription, using the subscription identifier from the message for modifying or deleting the subscription to access the database and obtain an identifier associated with an NRF that created the subscription, and forwarding the message for updating or deleting the subscription to the NRF.
 12. The system of claim 11 wherein the inter-PLMN subscription message handler is configured to, in automatically populating the subscription identifier to target NRF resource identification information mapping database: receive, from the NRF, a subscription creation response message indicating successful creation of the subscription; and read, from the subscription creation response message, the subscription identifier and the identifier associated with the NRF and storing, in the database, a mapping between the subscription identifier and the identifier associated with the NRF.
 13. The system of claim 12 wherein the identifier associated with the NRF comprises a target apiRoot attribute identifying the NRF.
 14. The system of claim 13 wherein the inter-PLMN subscription message handler is configured to read the target apiRoot attribute from a location header of the subscription creation response message.
 15. The system of claim 12 wherein the subscription creation response message includes a 201 Created message indicating successful creation of the subscription.
 16. The system of claim 12 wherein the subscription creation response message is received from an NRF that is a different NRF to which the SEPP sent a corresponding subscription creation request message.
 17. The system of claim 16 wherein the subscription creation response message is received from an NRF that received the corresponding subscription creation request message via intermediate forwarding.
 18. The system of claim 11 wherein the inter-PLMN message for updating or deleting the subscription includes a hypertext transfer protocol (HTTP) PATCH request for updating or deleting the subscription.
 19. The system of claim 18 wherein the inter-PLMN subscription message handler is configured to identify the inter-PLMN message for updating or deleting the subscription as a message for updating or deleting the subscription based on an HTTP method type of the message for updating or deleting the subscription.
 20. A non-transitory computer readable medium having stored thereon executable instructions that when executed by a processor of a computer control the computer to perform steps comprising: at a security edge protection proxy (SEPP): automatically populating, by the SEPP, a subscription identifier to target network function (NF) repository function (NRF) resource identification information mapping database accessible to the SEPP with mappings between subscription identifiers and target NRF resource identification information; receiving an inter-PLMN message for modifying or deleting a subscription; reading a subscription identifier from the message for modifying or deleting the subscription; using the subscription identifier from the message for modifying or deleting the subscription to access the database and obtain an identifier associated with an NRF that created the subscription; and forwarding the message for updating or deleting the subscription to the NRF. 